package com.itheima.stock.service;

import com.itheima.stock.common.domain.*;
import com.itheima.stock.pojo.StockBusiness;
import com.itheima.stock.vo.resp.PageResult;
import com.itheima.stock.vo.resp.R;


import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface StockService {
    R<List<StockBusiness>> findAllBusiness();

    /**
     * 获取国内最新大盘指数
     * @return
     */
    R<List<InnerMarketDomain>> getInnerStockMarket();

    /**
     * 查询最新板块数据前10
     * @return
     */
    R<List<StockBlockDomain>> getSectorAllLimit();

    /**
     * 沪深两市个股涨幅分时行情数据
     * @return
     */
    R<List<StockUpDownDomain>> getUpDownAllLimit();

    /**
     * 沪深两市个股行情列表查询 ,以时间顺序和涨幅排序分页查询
     * @param page
     * @param pageSize
     * @return
     */
    R<PageResult<StockUpDownDomain>> getUpDownAllPage(Integer page, Integer pageSize);

    /**
     * 沪深两市涨跌停分时行情数据查询，查询T日每分钟的涨跌停数据
     * @return
     */
    R<Map> getUpDownCount();

    /**
     * 涨幅榜数据分页导出到excel
     * @param response
     * @param page
     * @param pageSize
     */
    void exportStockExcel(HttpServletResponse response, Integer page, Integer pageSize);

    /**
     * 统计两市成交量在每分钟的之和的统计
     * @return
     */
    R<Map> getStockTravolCompare();

    /**
     * 查询当前时间下股票的涨跌幅度区间统计功能
     * @return
     */
    R<Map> getStockUpDownScope();

    /**
     * 查询单个个股的分时行情数据，查询时间周期是T日开盘到当前时间
     * @return
     */
    R<List<StockScreenMinDomain>> getStockScreenMinuteSharing(String code);

    /**
     * 单个个股日K 数据查询 ，可以根据时间区间查询数日的K线数据
     * @param code
     * @return
     */
    R<List<StockScreenDayDomain>> getDayKLinData(String code);
}
